package org.seed.mybatis.springboot.scatter;

public abstract class ShardingStrategy {


    private Object basis;

    /**
     * 数据源ID
     *
     * <p>配置在application.yml中的多项数据源</p>
     *
     * @return 数据源ID
     */
    public abstract String getDataSourceId();

    /**
     * 表名前缀
     * <p>
     * SQL执行阶段进行拼接
     *
     * @return
     */
    public String getTablePrefix() {
        return "";
    }

    /**
     * 表名后缀
     * <p>
     * SQL执行阶段进行拼接
     *
     * @return
     */
    public abstract String getTableSuffix();


    /**
     * 设置分库分表的依据字段(参数名称)
     *
     * @param basis
     */
    public void setBasisParamValue(Object basis) {
        this.basis = basis;
    }

}
